<?php require_once(BASEPATH.'application/controllers/validaciones.php');
class ordc extends validaciones {
		
		var $upload_path;

	function ordc(){
		parent::Controller();
		$this->load->library('rapyd');
		$this->load->library("path");
        $this->load->library('Inventario');
		
		$base_url=base_url();
		$path=new Path();
		$path->setPath($this->config->item('uploads_dir'));
		$path->append("/ordc");
		$this->upload_path =$path->getPath().'/';
	}

	function index() {
		redirect('compras/ordc/filteredgrid');
	}
	function filteredgrid(){
		$this->rapyd->load('datagrid','datafilter');

		$atts = array(
		 'width'      => '800',
		 'height'     => '600',
		 'scrollbars' => 'yes',
		 'status'     => 'yes',
		 'resizable'  => 'yes',
		 'screenx'    => '0',
		 'screeny'    => '0'
		);

		$modbus=array(
			'tabla'   =>'sprv',
			'columnas'=>array(
				'proveed' =>'C&oacute;digo Proveedor',
				'nombre'=>'Nombre',
				'rif'=>'RIF'),
			'filtro'  =>array('proveed'=>'C&oacute;digo Proveedor','nombre'=>'Nombre'),
			'retornar'=>array('proveed'=>'proveed'),
			'titulo'  =>'Buscar Proveedor');

		$boton=$this->datasis->modbus($modbus);

		$filter = new DataFilter('B&uacute;squeda de Ordenes de Compra','ordc');
		
		$filter->fechad = new dateonlyField("Desde", "fechad",'d/m/Y');
		$filter->fechah = new dateonlyField("Hasta", "fechah",'d/m/Y');
		$filter->fechad->clause  =$filter->fechah->clause="where";
		$filter->fechad->db_name =$filter->fechah->db_name="fecha";
		$filter->fechad->insertValue = date("Y-m-d");
		$filter->fechah->insertValue = date("Y-m-d");
		$filter->fechah->size=$filter->fechad->size=10;
		$filter->fechad->operator='>=';
		$filter->fechah->operator='<=';

		$filter->numero = new inputField('N&uacute;mero', 'numero');
		$filter->numero->size=20;

		$filter->proveedor = new inputField('Proveedor', 'proveed');
		$filter->proveedor->append($boton);
		$filter->proveedor->db_name = 'proveed';
		$filter->proveedor->size=20;
		
		$filter->moneda = new dropdownField("Moneda", "moneda");
		$filter->moneda->style='width:220px;';
		$filter->moneda->option("","Todas las monedas" );
		$filter->moneda->options("SELECT codigo,descrip FROM moneda ORDER BY codigo");
		
		
		$filter->status = new  dropdownField ('Estado', 'status');
		$filter->status->option('','TODAS');
		$filter->status->option('PE','PENDIENTE');
		$filter->status->option('CE','CERRADO');
		$filter->status->option('BA','BACKORDE');
		$filter->status->option('RE','RECHAZADO');
        $filter->status->option('T','TRANSITO');
		$filter->status->style='width:180px;';

		$filter->buttons('reset','search');
		$filter->build('dataformfiltro');

		$uri   = anchor('compras/ordc/dataedit/show/<#numero#>','<#numero#>');
		$uri_2  = anchor_popup('formatos/ver/ORDC/logo/<#numero#>',img(array('src'=>'images/pdf_logo.gif','border'=>'0','alt'=>'Ver Html','height'=>'15','title'=>'Ver Html')),$atts);
		$uri_2 .= anchor_popup("formatos/verhtml/ORDC/logo/<#numero#>",img(array('src'=>'images/html_icon.gif','border'=>'0','alt'=>'Ver Pdf','height'=>'15','title'=>'Ver Pdf')),$atts);
		$uri_2 .= img(array('src'=>'images/<boton><#status#></boton>.gif','border'=>'0','alt'=>'Estado','height'=>'12','title'=>'Estado'));
		
		function facturado($facturado='',$nombre){
			if($facturado=='CE'){
				return("<div style='background-color:#CDEC94'>$nombre</div>");
			}else{
				return ($nombre);
			}
		}
		
		function boton($tipo=''){
			
			IF($tipo=='R'){
				return 2;
			}else{
				return 1;	
			}
		}

		$grid = new DataGrid();
		$grid->order_by('numero','DESC');
		$grid->use_function('facturado');
		$grid->use_function('boton');
		$grid->per_page = 11;

		$grid->column('Acci&oacute;n',$uri_2,'align=center');
		$grid->column_orderby('N&uacute;mero',$uri,'numero');
		$grid->column_orderby('Fecha'        ,'<dbdate_to_human><#fecha#></dbdate_to_human>'   ,'fecha' ,"align='center'");
		$grid->column("Moneda"              ,"moneda","moneda"  ,"align='center'");
		$grid->column_orderby('Arribo'       ,'<dbdate_to_human><#arribo#></dbdate_to_human>'   ,'arribo' ,"align='center'");
		$grid->column_orderby('RUC'          ,'<#rifci#>'   ,'rifci');
		$grid->column_orderby('Nombre'       ,'<facturado><#status#>|<#nombre#></facturado>'   ,'nombre');
		$grid->column_orderby('Monto Total'  ,'montotot' ,'montotot' ,"align='right'");
		$grid->column_orderby('Estatus'       ,'status'   ,'status');
		//$grid->column("Vista",$uri2,"align='center'");
		$grid->add('compras/ordc/dataedit/create','Nueva Orden');
		$grid->build('datagridST');

		$style ='
<style type="text/css">
.fakeContainer { /* The parent container */
    margin: 5px;
    padding: 0px;
    border: none;
    width: 940px; /* Required to set */
    height: 450px; /* Required to set */
    overflow: hidden; /* Required to set */
}
</style>
';

		$data['style']   = $style;
		$data['style']  .= style('superTables.css');

		$data['content'] = $grid->output;
		$data['filtro']  = $filter->output;

		$data['head']    = script('jquery.js').script('superTables.js'). $this->rapyd->get_head();
		$data['title']   ='<h1>Ordenes de Compra</h1>';
		$this->load->view('view_ventanas', $data);
	}
	function dataedit(){
		$this->rapyd->load('dataobject','datadetails');
		
		$modbus=array(
			'tabla'   =>'sprv',
			'columnas'=>array(
				'proveed' =>'C&oacute;digo Proveedor',
				'nombre'=>'Nombre',
				'rif'=>'RIF'),
			'filtro'  =>array('proveed'=>'C&oacute;digo Proveedor','nombre'=>'Nombre'),
			'retornar'=>array('proveed'=>'proveed','nombre'=>'nombre','rif'=>'rifci'),
			'titulo'  =>'Buscar Proveedor');

		$boton=$this->datasis->modbus($modbus);

		$modbus=array(
			'tabla'   =>'sinv',
			'columnas'=>array(
				'codigo'  =>'C&oacute;digo',
				'descrip' =>'Descripci&oacute;n',
				'unidad' =>'Unidad',
				'precio1' =>'Precio 1',
				'precio2' =>'Precio 2',
				'precio3' =>'Precio 3',
				'existen' =>'Existencia',
		),
			'filtro'  =>array('codigo' =>'C&oacute;digo','descrip'=>'Descripci&oacute;n'),
			'retornar'=>array(
				'codigo' =>'codigo_<#i#>',
				'descrip'=>'descrip_<#i#>',
				'unidad'=>'unidad_<#i#>',
				'iva'    =>'itiva_<#i#>',
				'peso'   =>'sinvpeso_<#i#>',
				'ultimo' =>'ultimo_<#i#>'
				),
			'p_uri'   => array(4=>'<#i#>'),
			'titulo'  => 'Buscar Art&iacute;culo',
			'where'   => '`activo` = "S"',
			'script'  => array('post_modbus_sinv(<#i#>)')
				);
		$btn=$this->datasis->p_modbus($modbus,'<#i#>');


		$do = new DataObject('ordc');
		$do->rel_one_to_many('itordc', 'itordc', 'numero');
		$do->rel_pointer('itordc','sinv','itordc.codigo=sinv.codigo','sinv.descrip AS sinvdescrip, sinv.base1 AS sinvprecio1, sinv.base2 AS sinvprecio2, sinv.base3 AS sinvprecio3, sinv.base4 AS sinvprecio4, sinv.iva AS sinviva, sinv.peso AS sinvpeso,sinv.tipo AS sinvtipo');

		$edit = new DataDetails('Orden De Comnpra', $do);
		$edit->back_url = site_url('compras/ordc/filteredgrid');
		$edit->set_rel_title('itordc','Producto <#o#>');

		$edit->pre_process('insert' ,'_pre_insert');
		$edit->pre_process('update' ,'_pre_update');
		
		$edit->post_process('insert','_post_insert');
		$edit->post_process('update','_post_update');
		$edit->post_process('delete','_post_delete');
        
        
        $status  =$edit->_dataobject->get('status');
		$numero  =$edit->_dataobject->get('numero');
        $actualiza  =$edit->_dataobject->get('actualiza');

		$edit->fecha = new DateonlyField('Fecha', 'fecha','Y-m-d');
		$edit->fecha->insertValue = date('Y-m-d');
		$edit->fecha->rule = 'required';
		//$edit->fecha->mode = 'autohide';
		$edit->fecha->size = 10;
        
        $edit->actualiza = new DateonlyField('Fecha de Actualizaci&oacute;n del Inventario en SISTEMA', 'actualiza','d/m/Y');
		$edit->actualiza->insertValue = date('Y-m-d');
		$edit->actualiza->size = 12;
        $edit->actualiza->when=array('show');

		$edit->numero = new inputField('N&uacute;mero', 'numero');
		$edit->numero->size = 10;
		$edit->numero->mode='autohide';
		$edit->numero->maxlength=8;
		$edit->numero->apply_rules=false; //necesario cuando el campo es clave y no se pide al usuario
		$edit->numero->when=array('show','modify');
		
		$edit->moneda = new dropdownField("Moneda", "moneda");
		$edit->moneda->style='width:180px;';
		$edit->moneda->option("","Seleccione la moneda" );
		$edit->moneda->options("SELECT codigo,descrip FROM moneda ORDER BY codigo");
		$edit->moneda->rule = 'required';
        
        $edit->fnumero = new inputField('N&uacute;mero de Factura', 'fnumero');
        $edit->fnumero->size = 20;
        $edit->fnumero->when=array('show');
        $edit->fnumero->maxlength=20;
        
		$tipo=$this->datasis->traevalor('TIPO');	
		$edit->rifci   = new inputField("$tipo",'rifci');
		$edit->rifci->autocomplete=false;
		$edit->rifci->size = 35;
		$edit->rifci->readonly  = true;

		$edit->proveed = new inputField('Proveedor','proveed');
		$edit->proveed->size = 6;
		$edit->proveed->maxlength=5;
		$edit->proveed->append($boton);

		$edit->nombre = new inputField('Nombre', 'nombre');
		$edit->nombre->size = 52;
		$edit->nombre->maxlength=40;
		$edit->nombre->autocomplete=false;
		$edit->nombre->rule= 'required';

		$edit->status = new  dropdownField ('Estado', 'status');
		$edit->status->option('PE','PENDIENTE');
		$edit->status->option('CE','CERRADO');
		$edit->status->option('BA','BACKORDE');
		$edit->status->option('RE','RECHAZADO');
        $edit->status->option('T','TRANSITO');
		$edit->status->style='width:180px;';

		$edit->arribo = new DateonlyField('Arribo', 'arribo','Y-m-d');
		$edit->arribo->insertValue = date('Y-m-d');
		$edit->arribo->rule = 'required';
		//$edit->arribo->mode = 'autohide';
		$edit->arribo->size = 10;
		
		$edit->fechafac = new DateonlyField('Fecha Factura', 'fechafac','d/m/Y');
		$edit->fechafac->insertValue = date('Y-m-d');
		//$edit->fechafac->rule = 'required';
		$edit->fechafac->mode = 'autohide';
		$edit->fechafac->size = 10;

		//**************************
		//  Campos para el detalle
		//**************************
		$edit->codigo = new inputField('C&oacute;digo <#o#>', 'codigo_<#i#>');
		$edit->codigo->size     = 13;
		$edit->codigo->db_name  = 'codigo';
		$edit->codigo->readonly = true;
		$edit->codigo->rel_id   = 'itordc';
		$edit->codigo->rule     = 'required';
		$edit->codigo->append($btn);

		$edit->descrip = new inputField('Descripci&oacute;n <#o#>', 'descrip_<#i#>');
		$edit->descrip->size=29;
		$edit->descrip->db_name='descrip';
		//$edit->descrip->maxlength=50;
		$edit->descrip->readonly  = true;
		$edit->descrip->rel_id='itordc';

		$edit->cantidad = new inputField('Cantidad <#o#>', 'cantidad_<#i#>');
		$edit->cantidad->db_name  = 'cantidad';
		$edit->cantidad->css_class= 'inputnum';
		$edit->cantidad->rel_id   = 'itordc';
		$edit->cantidad->maxlength= 10;
		$edit->cantidad->size     = 6;
		$edit->cantidad->rule     = 'required|positive';
		$edit->cantidad->autocomplete=false;
		$edit->cantidad->onkeyup  ='importe(<#i#>)';
		
		$edit->unidad = new inputField('Unidad <#o#>', 'unidad_<#i#>');
		$edit->unidad->db_name  = 'unidad';
		$edit->unidad->rel_id   = 'itordc';
		//$edit->unidad->maxlength= 20;
		$edit->unidad->size     = 7;
		$edit->unidad->rule     = 'required|positive';

		$edit->costo = new inputField('Precio <#o#>', 'costo_<#i#>');
		$edit->costo->db_name   = 'costo';
		$edit->costo->css_class = 'inputnum';
		$edit->costo->rel_id    = 'itordc';
		$edit->costo->size      = 10;
		$edit->costo->rule      = 'required|positive';
		//$edit->costo->readonly  = true;
		$edit->costo->onkeyup  ='importe(<#i#>)';

		$edit->importe = new inputField('Importe <#o#>', 'importe_<#i#>');
		$edit->importe->db_name='importe';
		$edit->importe->size=10;
		$edit->importe->css_class='inputnum';
		$edit->importe->rel_id   ='itordc';
				
		$edit->invunidad = new dropdownField("Unidad <#o#>","invunidad_<#i#>");
		$edit->invunidad->db_name  = 'invunidad';
		$edit->invunidad->rel_id   = 'itordc';
		$edit->invunidad->style='width:100px;';
		$edit->invunidad->option("","");
		$edit->invunidad->options("SELECT unidades, unidades as valor FROM unidad ORDER BY unidades");
		$edit->invunidad->rule     = 'required|positive';
		
		$edit->invcantidad = new inputField('Cantidad <#o#>', 'invcantidad_<#i#>');
		$edit->invcantidad->db_name  = 'invcantidad';
		$edit->invcantidad->rel_id   = 'itordc';
		$edit->invcantidad->css_class= 'inputnum';
		$edit->invcantidad->maxlength= 6;
		$edit->invcantidad->size     = 6;
		$edit->invcantidad->rule     = 'required';

		for($i=1;$i<=4;$i++){
			
			$obj='precio'.$i;
			$edit->$obj = new hiddenField('Precio <#o#>', $obj.'_<#i#>');
			$edit->$obj->db_name   = 'sinv'.$obj;
			$edit->$obj->rel_id    = 'itordc';
			$edit->$obj->pointer   = true;
		}

		$edit->itiva = new hiddenField('', 'itiva_<#i#>');
		$edit->itiva->db_name  = 'iva';
		$edit->itiva->rel_id   = 'itordc';

		$edit->sinvpeso = new hiddenField('', 'sinvpeso_<#i#>');
		$edit->sinvpeso->db_name   = 'sinvpeso';
		$edit->sinvpeso->rel_id    = 'itordc';
		$edit->sinvpeso->pointer   = true;

		$edit->ultimo = new hiddenField('', 'ultimo_<#i#>');
		$edit->ultimo->db_name   = 'ultimo';
		$edit->ultimo->rel_id    = 'itordc';
		$edit->ultimo->pointer   = true;

		$edit->pond = new hiddenField('', "pond_<#i#>");
		$edit->pond->db_name='pond';
		$edit->pond->rel_id   ='itordc';
		$edit->pond->pointer   = true;
		//**************************
		//fin de campos para detalle
		//**************************

		$edit->montoiva = new inputField('Impuesto', 'montoiva');
		$edit->montoiva->css_class ='inputnum';
		$edit->montoiva->readonly  =true;
		$edit->montoiva->size      = 10;

		$edit->montotot = new inputField('Sub-Total', 'montotot');
		$edit->montotot->css_class ='inputnum';
		$edit->montotot->readonly  =true;
		$edit->montotot->size      = 10;

		$edit->montonet = new inputField('Monto Total', 'montonet');
		$edit->montonet->css_class ='inputnum';
		$edit->montonet->readonly  =true;
		$edit->montonet->size      = 10;
		
		$edit->presup = new uploadField("Presupuesto", "presup");
		$edit->presup->upload_path   =$this->upload_path;                  
		$edit->presup->delete_file   =false;
		$edit->presup->allowed_types = "pdf|xls|cvs|zip|bmp|text|txt|doc|docx|xlsx|word|xl";
		
		$edit->condi1 = new inputField('Condiciones', 'condi1');
		$edit->condi1->size =60;
		$edit->condi1->maxlength=70;
		$edit->condi1->autocomplete=false;

		$edit->condi2 = new inputField('Condiciones', 'condi2');
		$edit->condi2->size = 60;
		$edit->condi2->maxlength=70;
		$edit->condi2->autocomplete=false;
		
		$edit->condi3 = new inputField('Condiciones', 'condi3');
		$edit->condi3->size = 60;
		$edit->condi3->maxlength=70;
		$edit->condi3->autocomplete=false;
		
		$edit->condi4 = new inputField('Condiciones', 'condi4');
		$edit->condi4->size = 60;
		$edit->condi4->maxlength=70;
		$edit->condi4->autocomplete=false;
				
		$edit->paiso = new inputField('Puerto Origen', 'paiso');
		$edit->paiso->size =60;
		$edit->paiso->maxlength=100;  
		$edit->paiso->rule = "strtoupper";
		
		$edit->puerto = new inputField('Puerto Destino', 'puerto');
		$edit->puerto->size =60;
		$edit->puerto->maxlength=100;
		$edit->puerto->rule = "strtoupper"; 
		
		$edit->arancel = new inputField('Arancel', 'arancel');
		$edit->arancel->size =60;
		$edit->arancel->maxlength=100;
				
		$edit->termino = new inputField('Termino', 'termino');
		$edit->termino->size =60;
		$edit->termino->maxlength=100;
		$edit->termino->rule = "strtoupper";
		
		$edit->usuario = new autoUpdateField('usuario',$this->session->userdata('usuario'),$this->session->userdata('usuario'));
            
		if($edit->_status=='show'){
            
             $numero=$edit->_dataobject->get("numero");
             $query=$this->db->query("SELECT control,seriep,numero FROM scst WHERE orden='$numero'");
             //$this->inventario->sp_costos($numero,'CT');
                        
			IF($status=='CE'){
                                
				$conten['container_fc']=$query->result(); 
                
				$accion="javascript:window.location='".site_url("compras/scst/insertar/$numero")."'";  
				$edit->button_status('btn_cargar','Nueva Factura',$accion,'TR','show');
                
                
			}ELSE{
                                
                $conten['container_fc']=$query->result();  
                
                $accion="javascript:window.location='".site_url("compras/scst/insertar/$numero")."'";  
				$edit->button_status('btn_cargar','Cargar Compra Nacional',$accion,'TR','show');
				
				$accion="javascript:window.location='".site_url("import/ordi/insertar/$numero")."'";  
				$edit->button_status('btn_cargar','Cargar Importaci&oacute;n',$accion,'TR','show');
            
			}

            //$accion="javascript:window.location='".site_url("compras/ordc/carga/show/$numero")."'";  
            //$edit->button_status('btn_reversar','Documentos de Embarque',$accion,'TR','show');
                                    
            //$accion="javascript:window.location='".site_url("compras/ordc/dataedit/create")."'";  
            //$edit->button_status('btn_orden','Nueva Orden',$accion,'TR','show');
                
            $accion="javascript:window.location='".site_url("inventario/sinv")."'";  
            $edit->button_status('btn_despacho','Maestro',$accion,'TR','show');
			
			
		}
		IF(!empty($actualiza)){
		     $edit->buttons('save', 'undo','back','add_rel');
		}ELSE{
		     $edit->buttons('back','modify','save','undo','add_rel');
		}
		
		$edit->build();

		$conten['form']  =&  $edit;
		$data['content'] = $this->load->view('view_ordc', $conten,true);
		$data['title']   = heading('Orden de Compra');
		$data["script"]   = script("jquery.js");
		$data["script"]  .= script("plugins/jquery.numeric.pack.js");
		$data["script"]  .= script("plugins/jquery.floatnumber.js");
		$data["script"]  .= script("nformat.js");
		$data['head']    = $this->rapyd->get_head();
		$this->load->view('view_ventanas', $data);
	}
    function carga($estado='',$numero=''){
		$this->rapyd->load("dataedit");
	
		$edit = new DataEdit(" ", "ordc");
		$edit->back_url = site_url("compras/ordc/dataedit/show/$numero");
				
		//$edit->post_process('update','_post_update2');
						
		$edit->docemb1 = new uploadField("Factura (COMERCIAL INVOICE)", 'docemb1');
		$edit->docemb1->upload_path   =$this->upload_path;                  
		$edit->docemb1->delete_file   =false;
		$edit->docemb1->rule     = 'required';
		$edit->docemb1->allowed_types = "pdf|xls|cvs|zip|bmp|text|txt|doc|docx|xlsx|word|xl";
		$edit->docemb1->group = "Documentos de Embarcaci&oacute;n";
		
		$edit->docemb2 = new uploadField("Packing List", 'docemb2');
		$edit->docemb2->upload_path   =$this->upload_path;                  
		$edit->docemb2->delete_file   =false;
		//$edit->docemb2->rule     = 'required';
		$edit->docemb2->allowed_types = "pdf|xls|cvs|zip|bmp|text|txt|doc|docx|xlsx|word|xl";
		$edit->docemb2->group = "Documentos de Embarcaci&oacute;n";
		
		$edit->docemb3 = new uploadField("Seguro", 'docemb3');
		$edit->docemb3->upload_path   =$this->upload_path;                  
		$edit->docemb3->delete_file   =false;
		//$edit->docemb3->rule     = 'required';
		$edit->docemb3->allowed_types = "pdf|xls|cvs|zip|bmp|text|txt|doc|docx|xlsx|word|xl";
		$edit->docemb3->group = "Documentos de Embarcaci&oacute;n";
		
		$edit->docemb4 = new uploadField("BL", 'docemb4');
		$edit->docemb4->upload_path   =$this->upload_path;                  
		$edit->docemb4->delete_file   =false;
		//$edit->docemb4->rule     = 'required';
		$edit->docemb4->allowed_types = "pdf|xls|cvs|zip|bmp|text|txt|doc|docx|xlsx|word|xl";
		$edit->docemb4->group = "Documentos de Embarcaci&oacute;n";
		
		$edit->docemb5 = new uploadField("Adicional 1", 'docemb5');
		$edit->docemb5->upload_path   =$this->upload_path;                  
		$edit->docemb5->delete_file   =false;
		$edit->docemb5->allowed_types = "pdf|xls|cvs|zip|bmp|text|txt|doc|docx|xlsx|word|xl";
		$edit->docemb5->group = "Otros Documentos de Embarcaci&oacute;n";
		
		$edit->docemb6 = new uploadField("Adicional 2", 'docemb6');
		$edit->docemb6->upload_path   =$this->upload_path;                  
		$edit->docemb6->delete_file   =false;
		$edit->docemb6->allowed_types = "pdf|xls|cvs|zip|bmp|text|txt|doc|docx|xlsx|word|xl";
		$edit->docemb6->group = "Otros Documentos de Embarcaci&oacute;n";
                				
		$edit->buttons("save","undo","back");
		$edit->build();

		$data['content'] =$edit->output;      
		$data['title']   =  heading('Carga de Documentos');
		$data["head"]    = script("jquery.pack.js").script("plugins/jquery.numeric.pack.js").script("plugins/jquery.floatnumber.js").$this->rapyd->get_head();
		$this->load->view('view_ventanas', $data);
			
	}
    function reversar($id){
        
        
        $usuario=$this->session->userdata['usuario'];
		
		//Elimina en el maestro devuelve las cantidades

       $mSQL_items="SELECT cantidad,codigo FROM itordc WHERE numero='$id'";
       $query = $this->db->query($mSQL_items);
								
		foreach($query->result() as $items ){
						
			$mSQL=$this->db->query("UPDATE sinv SET existen=existen-'$items->cantidad' WHERE codigo='$items->codigo'");
			
			$SQL_1="SELECT existen FROM sinv WHERE codigo='$items->codigo'";
			$saldo=$this->datasis->dameval($SQL_1);
			
			
		}
        
        
        $mSQL=$this->db->query("UPDATE ordc SET status='PE',actualiza=NULL  WHERE numero='$id'");
		
		//Elimina en movimientos de clientes
		$mSQL=$this->db->query("DELETE FROM sprm WHERE orden='$id'");
        
               		
		//Elimina en costo (kardex de inventario)
		$mSQL_1=$this->db->query("DELETE FROM costos WHERE presup='$id'");
		
		        //$mSQL_2=$this->db->query("UPDATE spre set statusfac='A', WHERE id='$id'");
        		
		logusu('sfac',"ORDEN $id REVERSADA");
        
        redirect("compras/ordc/dataedit/show/$id");
        
    }
	function _pre_insert($do){
		$iva=$totals=0;
		$cana=$do->count_rel('itordc');
		
		$fecha=$do->get('fecha');
		$proveed=$do->get('proveed');
		
		for($i=0;$i<$cana;$i++){
			$itcana    = $do->get_rel('itordc','cantidad',$i);
			$itpreca   = $do->get_rel('itordc','costo',$i);
			$itiva     = $do->get_rel('itordc','iva',$i);
						
			$fecha     = $do->set_rel('itordc','fecha',$fecha,$i);
			$proveed   = $do->set_rel('itordc','proveed',$proveed,$i);
			
			$itimporte = $itpreca*$itcana;
			$do->set_rel('itordc','importe' ,$itimporte,$i);
			$totals +=$itimporte;

		}
		$totalg = $totals;

		
		$do->set('montonet' ,round($totalg ,2));
		$do->set('montotot' ,round($totalg ,2));
		$do->set('montoiva'    ,round($iva    ,2));

		$numero =$this->datasis->fprox_numero('nordc');
		$transac=$this->datasis->fprox_numero('ntransa');
		$usuario=$do->get('usuario');
		$estampa=date('Ymd');
		$hora   =date("H:i:s");
			
		$do->set('estampa',$estampa);
		$do->set('hora'   ,$hora);
		$do->set('numero' ,$numero);
		$do->set('transac',$transac);

		return true;
	}
	function _pre_update($do){
		$iva=$totals=0;
		$cana=$do->count_rel('itordc');
		
		$fecha=$do->get('fecha');
		$proveed=$do->get('proveed');
		
		for($i=0;$i<$cana;$i++){
			$itcana    = $do->get_rel('itordc','cantidad',$i);
			$itpreca   = $do->get_rel('itordc','costo',$i);
			$itiva     = $do->get_rel('itordc','iva',$i);
			
			$fecha     = $do->set_rel('itordc','fecha',$fecha,$i);
			$proveed   = $do->set_rel('itordc','proveed',$proveed,$i);
			
			$itimporte = $itpreca*$itcana;
			$do->set_rel('itordc','importe' ,$itimporte,$i);
			$totals +=$itimporte;
		}
		$totalg = $totals;
		//echo $totals;
		
		$do->set('montonet' ,round($totalg ,2));
		$do->set('montotot' ,round($totalg ,2));
		$do->set('montoiva' ,round($iva    ,2));

		return true;
	}
    function _post_sinv($do){
		
		$numero=$do->get('numero');
		$usuario=$this->session->userdata['usuario'];
		//Seleciona productos de presupuesto
		
		$itspreSQL="SELECT b.proveed,codigo,invcantidad as cana,b.actualiza as fecha,costo as pond,importe,b.numero as orden,b.numero as factura
		FROM itordc as a JOIN ordc as b on a.numero=b.numero WHERE a.numero='$numero'";
		
		//Recalcula las existencia  en el maestro,
				
		//$query = $this->db->query($itspreSQL);
		$mSQL_1 =  $this->db->query($itspreSQL);
		$data['result']=$mSQL_1->result();
		
		foreach($data['result'] AS $items){
			$mSQL=$this->db->query("UPDATE sinv SET existen=existen+'$items->cana' WHERE codigo='$items->codigo'");
			$SQL_1="SELECT existen FROM sinv WHERE codigo='$items->codigo'";
			//echo $SQL_1;
            
			
            $saldo=$this->datasis->dameval($SQL_1);
            
            $sql="INSERT INTO costos(fecha,codigo,origen,cantidad,promedio,monto,ubica,saldo,presup,factura)
                VALUES('$items->fecha','$items->codigo','2C','$items->cana','$items->pond','$items->importe','0001',$saldo,'$items->orden','$items->factura')";
			//ECHO $sql;
			$costoSQL1=$this->db->query($sql); 	
			
		}

	}
    function _post_update2($do){
		
		$numero=$do->get('numero');
		$usuario=$this->session->userdata['usuario'];
		
		//carga de documentos
        //crea cuenta x pagar
        
        $update=$this->db->query("UPDATE ordc SET status='CE' WHERE numero='$numero'");
		
        $mSQL_1=$this->db->query("SELECT `fecha`, `numero`, `proveed`, `nombre`, `montotot`, `montoiva`,
		`usuario`,arribo,fnumero  FROM ordc WHERE numero='$numero'");
		$row =$mSQL_1->row();
        
		$mSQL_2=$this->db->query("INSERT INTO sprm (cod_prv, nombre, tipo_doc,numero, fecha, monto, impuesto, usuario,vence,orden )
					 VALUES ('$row->proveed','$row->nombre','FC', '$row->fnumero','$row->fecha','$row->montotot','$row->montoiva','$usuario','$row->arribo','$row->numero') ");

	}
	function _post_insert($do){
		
		$numero=$do->get('numero');
        $this->inventario->sp_costos($numero,'CT');
               
		logusu('ordc',"O.Compra $numero CREADO");
	}
    function _pre_insert3($do){
		
		$numero=$do->get('numero');
		$mSQL=$this->db->query("DELETE FROM sprm WHERE orden='$numero'");
		return true;
	}
    function _post_update3($do){
        
		$numero=$do->get('numero');
		$usuario=$this->session->userdata['usuario'];
		
		$mSQL_1=$this->db->query("SELECT `fecha`, `numero`, `proveed`, `nombre`, `montotot`, `montoiva`,
		`usuario`,arribo,fnumero  FROM ordc WHERE numero='$numero'");
		$row =$mSQL_1->row();
		$mSQL_2=$this->db->query("INSERT INTO sprm (cod_prv, nombre, tipo_doc,numero, fecha, monto, impuesto, usuario,vence,orden )
					 VALUES ('$row->proveed','$row->nombre','FC', '$row->fnumero','$row->fecha','$row->montotot','$row->montoiva','$usuario','$row->arribo','$row->numero') ");
        
        return true;
	}
	function _post_update($do){
		
		$numero=$do->get('numero');
        $this->inventario->sp_costos($numero,'AT');
        
		logusu('ordc',"O.Compra $numero MODIFICADO");
             
	}
	function _post_delete($do){
		
		$numero=$do->get('numero');
        $this->inventario->sp_costos($numero,'AT');
		
		logusu('ordc',"O.Compra $numero ELIMINADO");
        
	}
}
